"""
json模块 是对json格式数据进行操作的模块

1.json.loads    >>>将字符串转换为字典   str>>>dict
2.json.dumps    >>>字典转换为字符串   dict>>>str

以下方法共同点  直接对文件对象进行操作
3.json.load
4.json.dump

遇到需求 需要把已经保存好的json格式文件 的数据提取出来 重新将字段保存为 excel csv文件
步骤
1.读取文件
2.进行数据转换   或者不转换 进行正则提取（注意 留意）
3对转换后的数据进行筛选   dict 类型
4进行字典取值
.....

load和loads是一个对文件对象进行操作的 一个是对字符串进行操作的

dump和dumps是一个对文件对象进行操作的 一个是对字符串进行操作的
dump直接传入dict数据以及 文件对象即可实现数据写入
"""
import json
# # 1.读取文件
# with open("a.json","r",encoding="utf-8")as file1:
#     # 通过file1文件对象的read方法 将a.json的所有字符串读出来
#     strdata=file1.read()
# # 2.进行数据转换
# jsondata=json.loads(strdata)
# # print(jsondata,type(jsondata))
#
# title=jsondata["初识NLTK.py"][0]["title"]
# rate=jsondata["初识NLTK.py"][0]["rate"]
# cover=jsondata["初识NLTK.py"][0]["cover"]
# print(title)
# print(rate)
# print(cover)


# json.load方法   直接对文件对象进行操作    file1

# with open("a.json","r",encoding="utf-8")as file1:
#     # json.loads是对文件对象进行操作的
#     jsondata=json.load(file1)
# print(jsondata,type(jsondata))
#
# title=jsondata["初识NLTK.py"][0]["title"]
# rate=jsondata["初识NLTK.py"][0]["rate"]
# cover=jsondata["初识NLTK.py"][0]["cover"]
# print(title)
# print(rate)
# print(cover)


# dump也是对文件队形进行操作
# json.dump(dict数据,文件对象,可选参数 )


# with open("a.json", "w", encoding="utf-8")as f:
#     for i in jsondata['subjects']:
#         # print(i["title"])
#         # print(i["rate"])
#         # print(i["cover"])
#         title=i["title"]
#         rate=i["rate"]
#         cover=i["cover"]
#         # 定义一个循环内的局部变量字典 存储每个电影的 数据
#         item={
#             "title":title,
#             "rate":rate,
#             "cover":cover
#         }
#         # write只能写入 字符串 再写入之前先进行数据转换
#         # 如果写入中文 而且不指定ensure_ascii=flase就会进行unicode编码
#         # indent=2 表示 提行数为我
#        json.dump(item,f,ensure_ascii=False,indent=3)











